home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 September / PCWorld_2006-09_cd.bin / komercni software / zoner / zps8_cz.exe / {app} / HTMLPublish / slideshow.ZHT / main.js < prev    next >
Text File  |  2006-03-22  |  13KB  |  399 lines

  1. function GeneratePreview(cSourcePath, cDestPath, cID)
  2. {
  3.   //MessageBox("cSourcePath = " + cSourcePath + "\ncDestPath = " + cDestPath + "\ncID = " + cID, "Preview", MB_OK);
  4. }
  5.  
  6. function GetAlbumPageFileName(iPage) {
  7.   if (iPage == 0) {
  8.     return "index.htm";
  9.   } else {
  10.     return "page" + IntToStr(iPage, 3) + ".htm";
  11.   }
  12. }
  13.  
  14. function GetImagePageFileName(iImg) {
  15.   return "ipage" + IntToStr(iImg, 5) + ".htm";
  16. }
  17.  
  18. function GetPagesNavigation(iPagesCount, iCurPage) {
  19.   cNavigation = "";
  20.   for (iPage=0; iPage < iPagesCount; iPage++) {
  21.     if (iPage == iCurPage) {
  22.       cNavigation += "<b>"+IntToStr(iPage+1, 0)+"</b>\n";
  23.     } else {
  24.       cNavigation += "<a href=\""+GetAlbumPageFileName(iPage)+"\">"+IntToStr(iPage+1, 0)+"</a>\n";
  25.     }
  26.   }
  27.   return cNavigation;
  28. }
  29.  
  30. function GenerateAlbum(cSourcePath, cDestPath)
  31. {
  32.   var iTNCols=666; 
  33.   var iTNRows=666;
  34.   var iTNDescFontSize = 12;
  35.   var iFilesCount = lSelectedFiles.GetCount();
  36.   var iDirsCount = lSelectedDirs.GetCount();
  37.   var iFilesPerPage = iFilesCount;
  38.   var iPagesCount = Math.ceil(iFilesCount/iFilesPerPage);
  39.  
  40.   var iNavPosition = parseInt(cNavPosition);
  41.   
  42.   var iTNBoxWidth = iTNWidth + 40;
  43.   var iTNBoxHeight = iTNHeight + 2 * iTNDescFontSize + 20;
  44.  
  45. // barva pisma
  46.   var iATitleColor = iTextColor;
  47.   var iITitleColor = iTextColor;
  48. // barva odkazu
  49.   var iAActiveTitleColor = iActiveColor;
  50.   var iIActiveTitleColor = iActiveColor;
  51.  
  52.   var iTNCols = 1;
  53.  
  54.   
  55.   var iATitleBgColor= iBgColor;
  56.   var iATitleOBorderColor = iBgColor;
  57.   var iATitleIBorderColor = iBgColor;
  58.   var iTNDescFontColor = 0;
  59.   var iTNDescFontSize = 10;
  60.   var iAFootFontColor = iFootFontColor;
  61.   var iAFootFontSize = iFootFontSize;
  62.  
  63.   var iImgDescFontColor =0;
  64.   var iImgDescFontSize = 10;
  65.   var iIFootFontColor = iFootFontColor;
  66.   var iIFootFontSize = iFootFontSize;
  67.  
  68.  
  69.   var iATitleWidth = iTNBoxWidth * iTNCols;
  70.   var iATitleHeight = 30;
  71.   var iATitleWidth2 = iATitleWidth-2;
  72.   var iATitleHeight2 = iATitleHeight-2;
  73.   var iITitleWidth = 0;
  74.   var iITitleHeight = 0;
  75.   var iITitleWidth2 = 0;
  76.   var iITitleHeight2 = 0;
  77.  
  78.   var cAlbumName = "";
  79.   var cTNDescText = "{T}";
  80.   var cImgDescText = "";
  81.   var cIFootText = "";
  82.   var cPageTitle = "";
  83.  
  84.   var tAlbumCSS = new CTemplate();
  85.   tAlbumCSS.Load(cSourcePath + "album_css.tpl", 0);
  86.  
  87.   tAlbumCSS.SetReplace("${BGCOLOR}", HEXColor(iBgColor));
  88.  
  89.   tAlbumCSS.SetReplace("${TITLE_WIDTH}", iATitleWidth);
  90.   tAlbumCSS.SetReplace("${TITLE_HEIGHT}", iATitleHeight);
  91.   tAlbumCSS.SetReplace("${TITLE_WIDTH_2}", iATitleWidth2);
  92.   tAlbumCSS.SetReplace("${TITLE_HEIGHT_2}", iATitleHeight2);
  93.  
  94.   tAlbumCSS.SetReplace("${TITLE_TEXT_SIZE}", iFontSize);
  95.   tAlbumCSS.SetReplace("${TITLE_FONT_COLOR}", HEXColor(iATitleColor));
  96.   tAlbumCSS.SetReplace("${TITLE_ACTIVE_FONT_COLOR}", HEXColor(iAActiveTitleColor));
  97.   tAlbumCSS.SetReplace("${TITLE_BGCOLOR}", HEXColor(iATitleBgColor));
  98.   tAlbumCSS.SetReplace("${TITLE_OBORDER_COLOR}", HEXColor(iATitleOBorderColor));
  99.   tAlbumCSS.SetReplace("${TITLE_IBORDER_COLOR}", HEXColor(iATitleIBorderColor));
  100.  
  101.   tAlbumCSS.SetReplace("${TN_BOX_WIDTH}", iTNBoxWidth);
  102.   tAlbumCSS.SetReplace("${TN_BOX_HEIGHT}", iTNBoxHeight);
  103.   tAlbumCSS.SetReplace("${TN_FONT_COLOR}", HEXColor(iDescFontColor));
  104.   tAlbumCSS.SetReplace("${TN_FONT_SIZE}", iDescFontSize);
  105.  
  106.   tAlbumCSS.SetReplace("${FOOT_FONT_COLOR}", HEXColor(iAFootFontColor));
  107.   tAlbumCSS.SetReplace("${FOOT_FONT_SIZE}", iAFootFontSize);
  108.  
  109.   SaveString(cDestPath + "album.css", tAlbumCSS.Replace(), 0); 
  110.  
  111.   var iITitleWidth = iImgWidth;
  112.   var iITitleHeight = 30;
  113.   var iITitleWidth2 = iITitleWidth-2;
  114.   var iITitleHeight2 = iITitleHeight-2;
  115.  
  116.  
  117.   var tImgCSS = new CTemplate();
  118.   tImgCSS.Load(cSourcePath + "image_css.tpl", 0);
  119.  
  120.   tImgCSS.SetReplace("${BGCOLOR}", HEXColor(iBgColor));
  121.  
  122.   tImgCSS.SetReplace("${TITLE_WIDTH}", iITitleWidth);
  123.   tImgCSS.SetReplace("${TITLE_HEIGHT}", iITitleHeight);
  124.   tImgCSS.SetReplace("${TITLE_WIDTH_2}", iITitleWidth2);
  125.   tImgCSS.SetReplace("${TITLE_HEIGHT_2}", iITitleHeight2);
  126.  
  127.   tImgCSS.SetReplace("${IMAGE_TITLE_TEXT_SIZE}", iTitleFontSize);
  128.   tImgCSS.SetReplace("${IMAGE_TITLE_FONT_COLOR}", HEXColor(iTitleTextColor));
  129.   tImgCSS.SetReplace("${TITLE_TEXT_SIZE}", iFontSize);
  130.   tImgCSS.SetReplace("${TITLE_FONT_COLOR}", HEXColor(iITitleColor));
  131.   tImgCSS.SetReplace("${TITLE_ACTIVE_FONT_COLOR}", HEXColor(iIActiveTitleColor));
  132.   tImgCSS.SetReplace("${TITLE_BGCOLOR}", HEXColor(iITitleBgColor));
  133.   tImgCSS.SetReplace("${TITLE_OBORDER_COLOR}", HEXColor(iITitleOBorderColor));
  134.   tImgCSS.SetReplace("${TITLE_IBORDER_COLOR}", HEXColor(iITitleIBorderColor));
  135.  
  136.   tImgCSS.SetReplace("${DESC_FONT_COLOR}", HEXColor(iDescFontColor));
  137.   tImgCSS.SetReplace("${DESC_FONT_SIZE}", iDescFontSize);
  138.  
  139.   tImgCSS.SetReplace("${FOOT_FONT_COLOR}", HEXColor(iIFootFontColor));
  140.   tImgCSS.SetReplace("${FOOT_FONT_SIZE}", iIFootFontSize);
  141.  
  142.   SaveString(cDestPath + "image.css", tImgCSS.Replace(), 0); 
  143.  
  144.   var tFrames = new CTemplate();
  145.   tFrames.Load(cSourcePath + "frames.tpl", 0);
  146.  
  147.   var tFrame = new CTemplate();
  148.   if (iNavPosition==4)
  149.     tFrame.Load(cSourcePath + "fright.tpl", 0);
  150.   else
  151.     if (iNavPosition==3)
  152.       tFrame.Load(cSourcePath + "fleft.tpl", 0);
  153.     else
  154.       if (iNavPosition==2)
  155.         tFrame.Load(cSourcePath + "fbottom.tpl", 0);
  156.      else
  157.         tFrame.Load(cSourcePath + "ftop.tpl", 0);
  158.  
  159.   tFrame.SetReplace("${PREVIEWS_HEIGHT}", iTNHeight + 32);
  160.   tFrame.SetReplace("${PREVIEWS_WIDTH}", iTNWidth + 32);
  161.  
  162.   tFrames.SetReplace("${DOCUMENT_TITLE}", cAPageTitle);
  163.   tFrames.SetReplace("${FRAMES}", tFrame.Replace());
  164.   SaveString(cDestPath + "index.htm", tFrames.Replace(), 0); 
  165.  
  166.   var tAlbum = new CTemplate();
  167.   tAlbum.Load(cSourcePath + "album.tpl", 0);
  168.  
  169.   var tTN = new CTemplate();
  170.   tTN.Load(cSourcePath + "cell.tpl", 0);
  171.  
  172.   var tImg = new CTemplate();
  173.   tImg.Load(cSourcePath + "image.tpl", 0);
  174.  
  175.   var tFooter = new CTemplate();
  176.   tFooter.Load(cSourcePath + "footer.tpl", 0);
  177.  
  178.   var tDesc = new CTemplate();
  179.   tDesc.Load(cSourcePath + "desc.tpl", 0);
  180.  
  181.   var tTitle = new CTemplate();
  182.   tTitle.Load(cSourcePath + "title.tpl", 0);
  183.  
  184.   InitProgress(iFilesCount*2 + iDirsCount);
  185.   var iItem = 0;
  186.   
  187.   if (iFilesCount > 0)
  188.   {
  189.       // pages with images
  190.       var iImgs = 1;
  191.       for (var iImg = 1; iImgs <= iFilesCount; iImg++) {
  192.            SetProgress(iItem++);
  193.           cFileName = lSelectedFiles.GetAt(iImgs-1);
  194.           if (bUseOriginalFileNames)
  195.           {
  196.             cGetFileName = GetFileName(cFileName);
  197.     
  198.             cTNFileName = "tn_" + cGetFileName + ".jpg";
  199.             cImgFileName = cGetFileName + ".jpg";
  200.           }
  201.           else
  202.           {
  203.             cNumFileName = IntToStr(iImgs, 5);
  204.     
  205.             cTNFileName = "tn" + cNumFileName + ".jpg";
  206.             cImgFileName = "img" + cNumFileName + ".jpg";
  207.           }
  208.     
  209.           var pImg = new CImage();
  210.           pImg.Load(cFileName, 0);
  211.     
  212.           pImg.Resize(iImgWidth, iImgHeight, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
  213.           pImg.SaveAs(cDestPath + cImgFileName, JPGformat, iImgJPEG, 0);
  214.     
  215.           pImg.Resize(iTNWidth, iTNHeight, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
  216.           //pImg.SaveAs(cDestPath + cTNFileName + ".png", PNGformat, 0, 0);
  217.     
  218.     //      pImg.Render(iBgColor);
  219.     
  220.           pImg.SaveAs(cDestPath + cTNFileName, JPGformat, iTNJPEG, 0);
  221.     
  222.           tImg.SetReplace("${IMG_TITLE}", cPageTitle);
  223.           if (bImageTitle)
  224.           {
  225.         tTitle.SetReplace("${IMAGE_TITLE}", ReplaceExifStrings(cImageTitle, cFileName, cDestPath + cImgFileName));
  226.             tImg.SetReplace("${IMAGE_TITLE}", tTitle.Replace());
  227.           }
  228.           else
  229.         tImg.SetReplace("${IMAGE_TITLE}", "");
  230.     
  231.           tImg.SetReplace("${IMG_NAME}", ReplaceExifStrings(cImageName, cFileName, cDestPath + cImgFileName));
  232.     
  233.           if (iImgs > 1) {
  234.             tImg.SetReplace("${IMG_PREVPAGE}", "<a href=\""+GetImagePageFileName(iImgs-1)+"\"><b><<</b> </a>");
  235.           } else {
  236.             tImg.SetReplace("${IMG_PREVPAGE}", "");
  237.           }
  238.     
  239.           tImg.SetReplace("${IMG_POSITION}", (iImgs) + " / " + iFilesCount);
  240.     
  241.           if (iImgs < iFilesCount) {
  242.             tImg.SetReplace("${IMG_NEXTPAGE}", "<a href=\""+GetImagePageFileName(iImgs+1)+"\"> <b>>></b></a>");
  243.           } else {
  244.             tImg.SetReplace("${IMG_NEXTPAGE}", "");
  245.           }
  246.     
  247.           tImg.SetReplace("${IMG_FILENAME}", cImgFileName);
  248.           if (bDesc)
  249.           {
  250.         tDesc.SetReplace("${IMG_DESC}", ReplaceExifStrings(cDescText, cFileName, cDestPath + cImgFileName));
  251.             tImg.SetReplace("${IMG_DESC}", tDesc.Replace());
  252.           }
  253.           else
  254.           {
  255.         tImg.SetReplace("${IMG_DESC}", "");
  256.           }
  257.           if (bFooter)
  258.           {
  259.         tFooter.SetReplace("${IMG_FOOT}", ReplaceExifStrings(cAFootText, cFileName, cDestPath + cImgFileName));
  260.             tImg.SetReplace("${IMG_FOOT}", tFooter.Replace());
  261.           }
  262.           else
  263.           {
  264.         tImg.SetReplace("${IMG_FOOT}", "");
  265.           }
  266.     
  267.           SaveString(cDestPath + GetImagePageFileName(iImgs), tImg.Replace(), 0); 
  268.           pImg.Close();
  269.     
  270.           iImgs++;
  271.       }
  272.   }
  273.   else
  274.   {
  275.       var tNoImg = new CTemplate();
  276.       tNoImg.Load(cSourcePath + "noimage.tpl", 0);
  277.       SaveString(cDestPath + GetImagePageFileName(1), tNoImg.Replace(), 0); 
  278.   }
  279.   // TOP INDEX
  280.   var cPageFileName = "list.htm";
  281.   tAlbum.SetReplace("${ALB_TITLE}", "");
  282.   tAlbum.SetReplace("${ALB_NAME}", "");
  283.   tAlbum.SetReplace("${ALB_PREVPAGE}", "");
  284.   tAlbum.SetReplace("${ALB_PAGES_NAVIGATION}", "");
  285.   tAlbum.SetReplace("${ALB_NEXTPAGE}", "");
  286.   var cThumbnails = "<table>";
  287.   if (iNavPosition!=3 && iNavPosition!=4)
  288.      cThumbnails += "<tr>";
  289.  
  290.   tTN.SetReplace("${TN_TARGET}", "_parent")
  291.   for (var iDir = 0; iDir <= iDirsCount; iDir++) {
  292.     if (iDir == 0)
  293.     {
  294.       if (pAlbum.bIsCurrentGalleryRootGallery)
  295.       {
  296.          var pFolderImage = new CImage();
  297.         pFolderImage.LoadDirPreview(pAlbum.cAlbumRootPath, null);
  298.         pFolderImage.Render(iBgColor);
  299.         pFolderImage.Resize(iTNWidth, iTNHeight, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
  300.         pFolderImage.SaveAs(cDestPath + "folder.png", PNGformat, 0, 0);
  301.             
  302.         pFolderImage.Close();
  303.  
  304.         continue;
  305.       }
  306.         
  307.       cRelDirName = "..";
  308.     }
  309.     else
  310.     {
  311.          SetProgress(iItem++);
  312.     
  313.         cDirName = lSelectedDirs.GetAt(iDir-1);
  314.         
  315.         cRelDirName = StripFilePath(cDirName);
  316.         
  317.         CreateDir(cDestPath + cRelDirName);
  318.         
  319.         var pFolderImage = new CImage();
  320.         pFolderImage.LoadDirPreview(cDirName, null);
  321.         pFolderImage.Render(iBgColor);
  322.         pFolderImage.Resize(iTNWidth, iTNHeight, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
  323.         pFolderImage.SaveAs(cDestPath + cRelDirName + "\\" + "folder.png", PNGformat, 0, 0);
  324.         
  325.         pFolderImage.Close();
  326.     }
  327.     
  328.     
  329.       if (iNavPosition==3 || iNavPosition==4)
  330.       {
  331.         tTN.SetReplace("${TN_CELL_START}", "<tr>");
  332.         tTN.SetReplace("${TN_CELL_END}", "</tr>");
  333.       }
  334.       else
  335.       {
  336.         tTN.SetReplace("${TN_CELL_START}", "");
  337.         tTN.SetReplace("${TN_CELL_END}", "");
  338.       } 
  339.       tTN.SetReplace("${TN_IMG_PAGENAME}", cRelDirName + "/index.htm");
  340.       tTN.SetReplace("${TN_FILENAME}", cRelDirName + "/" + "folder.png");
  341.       if (iDir == 0)
  342.            tTN.SetReplace("${TN_DESC}", "..");
  343.       else
  344.            tTN.SetReplace("${TN_DESC}", ReplaceExifStrings(cTNDescText, cDirName, cDirName));
  345.            
  346.       cThumbnails += tTN.Replace();
  347.   } 
  348.  
  349.   tTN.SetReplace("${TN_TARGET}", "image")
  350.   for (var iImg = 1; iImg <= iFilesCount; iImg++) {
  351.        SetProgress(iItem++);
  352.       
  353.       cFileName = lSelectedFiles.GetAt(iImg-1);
  354.       if (bUseOriginalFileNames)
  355.       {
  356.         cGetFileName = GetFileName(cFileName);
  357.  
  358.         cTNFileName = "tn_" + cGetFileName + ".jpg";
  359.         cImgFileName = cGetFileName + ".jpg";
  360.       }
  361.       else
  362.       {
  363.         cNumFileName = IntToStr(iImg, 5);
  364.  
  365.         cTNFileName = "tn" + cNumFileName + ".jpg";
  366.         cImgFileName = "img" + cNumFileName + ".jpg";
  367.       }
  368.  
  369.       if (iNavPosition==3 || iNavPosition==4)
  370.       {
  371.         tTN.SetReplace("${TN_CELL_START}", "<tr>");
  372.         tTN.SetReplace("${TN_CELL_END}", "</tr>");
  373.       }
  374.       else
  375.       {
  376.         tTN.SetReplace("${TN_CELL_START}", "");
  377.         tTN.SetReplace("${TN_CELL_END}", "");
  378.       } 
  379.       tTN.SetReplace("${TN_IMG_PAGENAME}", GetImagePageFileName(iImg));
  380.       tTN.SetReplace("${TN_FILENAME}", cTNFileName);
  381.       tTN.SetReplace("${TN_DESC}", "");//ReplaceExifStrings(cTNDescText, cFileName, cDestPath + cImgFileName));
  382.       cThumbnails += tTN.Replace();
  383.   } 
  384.  
  385.   if (iNavPosition!=3 && iNavPosition!=4)
  386.      cThumbnails += "</tr>";
  387.   cThumbnails += "</table>";
  388.   tAlbum.SetReplace("${ALB_THUMBNAILS}", cThumbnails);
  389.   tAlbum.SetReplace("${ALB_FOOT}", "");
  390.   SaveString(cDestPath + cPageFileName, tAlbum.Replace(), 0); 
  391.  
  392.   return cDestPath+"index.htm";
  393. //  return cDestPath+GetAlbumPageFileName(0);
  394.  
  395. }
  396.  
  397.  
  398. INIT_OK;
  399.